// pages/ai/index.js
const aiService = require('../../services/ai');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isLoading: false,
    userInput: '',
    messages: [
      {
        role: 'assistant',
        content: '您好！我是宠物健康AI助手，有什么可以帮您的吗？'
      }
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.setNavigationBarTitle({
      title: 'AI宠物助手'
    });
  },

  /**
   * 用户输入变化
   */
  onInputChange(e) {
    this.setData({
      userInput: e.detail.value
    });
  },

  /**
   * 发送消息
   */
  sendMessage() {
    const { userInput, messages } = this.data;
    
    if (!userInput.trim()) {
      return;
    }
    
    // 添加用户消息
    const newMessages = [...messages, {
      role: 'user',
      content: userInput
    }];
    
    this.setData({
      messages: newMessages,
      userInput: '',
      isLoading: true
    });
    
    // 滚动到底部
    this.scrollToBottom();
    
    // 调用AI服务
    aiService.chatWithAI(userInput)
      .then(answer => {
        console.log('收到AI回复:', answer);
        
        const responseMessages = [...this.data.messages, {
          role: 'assistant',
          content: answer
        }];
        
        this.setData({
          messages: responseMessages,
          isLoading: false
        });
        
        // 滚动到底部
        this.scrollToBottom();
      })
      .catch(err => {
        console.error('AI服务请求失败:', err);
        
        const responseMessages = [...this.data.messages, {
          role: 'assistant',
          content: '抱歉，AI助手服务出现故障，请稍后再试。'
        }];
        
        this.setData({
          messages: responseMessages,
          isLoading: false
        });
        
        // 滚动到底部
        this.scrollToBottom();
      });
  },
  
  /**
   * 滚动到底部
   */
  scrollToBottom() {
    setTimeout(() => {
      wx.createSelectorQuery()
        .select('#message-container')
        .boundingClientRect(rect => {
          if (rect) {
            wx.pageScrollTo({
              scrollTop: rect.height,
              duration: 300
            });
          }
        })
        .exec();
    }, 100);
  },

  /**
   * 使用提示问题
   */
  useTip(e) {
    const tip = e.currentTarget.dataset.tip;
    this.setData({
      userInput: tip
    });
    // 不自动发送，让用户点击发送按钮
  }
}) 